#include "KEY.h"

/**
 * @attention key一端直接接地(不带上拉), IO上拉输入
 * @note GPIOA输入寄存器: GPIOA->IDR; GPIOB输入寄存器: GPIOB->IDR
 */
void KEY_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // 总线时钟
    GPIO_InitStructure.GPIO_Pin = KEY0;                   // 选择IO组的端口引脚(0~15)
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;         // 上拉输入
    GPIO_Init(KEY_PORT, &GPIO_InitStructure);             // IO组初始化
}

void KEY_Down(void)
{
    if (!GPIO_ReadInputDataBit(KEY_PORT, KEY0))
    {
        delay_ms(20);
        if (!GPIO_ReadInputDataBit(KEY_PORT, KEY0))
        {
            while (!GPIO_ReadInputDataBit(KEY_PORT, KEY0))
                ; // 等待按键松开
        }
    }
}
